home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import javax.accessibility.AccessibleHyperlink;
- import javax.accessibility.AccessibleHypertext;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.BadLocationException;
- import javax.swing.text.Document;
- import javax.swing.text.Element;
- import javax.swing.text.ElementIterator;
- import javax.swing.text.JTextComponent;
- import javax.swing.text.html.HTML.Attribute;
- import javax.swing.text.html.HTML.Tag;
-
- public class JEditorPane$JEditorPaneAccessibleHypertextSupport extends JEditorPane.AccessibleJEditorPane implements AccessibleHypertext {
- // $FF: synthetic field
- private final JEditorPane this$0;
- JEditorPane.JEditorPaneAccessibleHypertextSupport.LinkVector hyperlinks;
- boolean linksValid;
-
- public JEditorPane$JEditorPaneAccessibleHypertextSupport(JEditorPane var1) {
- super(var1);
- this.this$0 = var1;
- this.linksValid = false;
- this.hyperlinks = new JEditorPane.JEditorPaneAccessibleHypertextSupport.LinkVector(this);
- Document var2 = ((JTextComponent)var1).getDocument();
- if (var2 != null) {
- var2.addDocumentListener(new JEditorPane.3(this));
- }
-
- }
-
- // $FF: synthetic method
- static JEditorPane access$0(JEditorPane$JEditorPaneAccessibleHypertextSupport var0) {
- return var0.this$0;
- }
-
- private void buildLinkTable() {
- this.hyperlinks.removeAllElements();
- Document var1 = this.this$0.getDocument();
- if (var1 != null) {
- ElementIterator var2 = new ElementIterator(var1);
-
- Element var3;
- while((var3 = var2.next()) != null) {
- if (var3.isLeaf()) {
- AttributeSet var4 = var3.getAttributes();
- AttributeSet var5 = (AttributeSet)var4.getAttribute(Tag.A);
- String var6 = var5 != null ? (String)var5.getAttribute(Attribute.HREF) : null;
- if (var6 != null) {
- this.hyperlinks.addElement(new JEditorPane.JEditorPaneAccessibleHypertextSupport.HTMLLink(this, var3));
- }
- }
- }
- }
-
- this.linksValid = true;
- }
-
- public AccessibleHyperlink getLink(int var1) {
- if (!this.linksValid) {
- this.buildLinkTable();
- }
-
- return var1 >= 0 && var1 < this.hyperlinks.size() ? (AccessibleHyperlink)this.hyperlinks.elementAt(var1) : null;
- }
-
- public int getLinkCount() {
- if (!this.linksValid) {
- this.buildLinkTable();
- }
-
- return this.hyperlinks.size();
- }
-
- public int getLinkIndex(int var1) {
- if (!this.linksValid) {
- this.buildLinkTable();
- }
-
- Element var2 = null;
- Document var3 = this.this$0.getDocument();
- int var4;
- if (var3 != null) {
- for(var2 = var3.getDefaultRootElement(); !var2.isLeaf(); var2 = var2.getElement(var4)) {
- var4 = var2.getElementIndex(var1);
- }
- }
-
- return this.hyperlinks.baseElementIndex(var2);
- }
-
- public String getLinkText(int var1) {
- if (!this.linksValid) {
- this.buildLinkTable();
- }
-
- Element var2 = (Element)this.hyperlinks.elementAt(var1);
- if (var2 != null) {
- Document var3 = this.this$0.getDocument();
- if (var3 != null) {
- try {
- return var3.getText(var2.getStartOffset(), var2.getEndOffset() - var2.getStartOffset());
- } catch (BadLocationException var4) {
- return null;
- }
- }
- }
-
- return null;
- }
- }
-